package org.myspringframework.beans.factory;

import org.myspringframework.beans.BeansException;

/**
 * 一个有自动装配能力的Bean工厂配置的接口
 *在 BeanFactory 的基础上，增加了下列功能：
 *
 *  关于自动装配策略的4个常数
 * 创建和填充外部bean实例的典型方法
 * 对bean生命周期进行细粒度控制的专门方法
 * 解析注入点的委托方法
 */
public interface AutowireCapableBeanFactory extends BeanFactory {

    /**
     * 执行 BeanPostProcessors 接口实现类的 postProcessBeforeInitialization 方法
     */
    Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException;

    /**
     * 执行 BeanPostProcessors 接口实现类的 postProcessorsAfterInitialization 方法

     */
    Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException;

}